#include <iostream>
using namespace std;

int main()
{
  int a, b, c, d, e, f;
  while (cin >> a >> b >> c >> d >> e >> f)
  {
    // 如果输入的六个数都是 0，结束程序
    if (a == 0 && b == 0 && c == 0 && d == 0 && e == 0 && f == 0)
    {
      break;
    }

    int parcels = 0;

    // 处理 6*6 的物品，每个 6*6 的物品需要一个单独的包裹
    parcels += f;

    // 处理 5*5 的物品，每个 5*5 的物品需要一个单独的包裹，且每个包裹还能放 11 个 1*1 的物品
    parcels += e;
    a -= e * 11;
    if (a < 0)
    {
      a = 0;
    }

    // 处理 4*4 的物品，每个 4*4 的物品需要一个单独的包裹，且每个包裹还能放 5 个 2*2 的物品
    parcels += d;
    int spaceFor2x2 = d * 5;
    if (b >= spaceFor2x2)
    {
      b -= spaceFor2x2;
    }
    else
    {
      spaceFor2x2 -= b;
      b = 0;
      a -= spaceFor2x2 * 4;
      if (a < 0)
      {
        a = 0;
      }
    }

    // 处理 3*3 的物品
    parcels += (c + 3) / 4;
    int remainder = c % 4;
    if (remainder == 1)
    {
      b -= 5;
      if (b < 0)
      {
        a += b * 4;
        b = 0;
      }
      a -= 7;
      if (a < 0)
      {
        a = 0;
      }
    }
    else if (remainder == 2)
    {
      b -= 3;
      if (b < 0)
      {
        a += b * 4;
        b = 0;
      }
      a -= 6;
      if (a < 0)
      {
        a = 0;
      }
    }
    else if (remainder == 3)
    {
      b -= 1;
      if (b < 0)
      {
        a += b * 4;
        b = 0;
      }
      a -= 5;
      if (a < 0)
      {
        a = 0;
      }
    }

    // 处理 2*2 的物品，每 9 个 2*2 的物品需要一个包裹
    parcels += (b + 8) / 9;
    int remainingSpaceFor1x1 = ((b + 8) / 9 * 9 - b) * 4;
    a -= remainingSpaceFor1x1;
    if (a < 0)
    {
      a = 0;
    }

    // 处理 1*1 的物品，每 36 个 1*1 的物品需要一个包裹
    parcels += (a + 35) / 36;

    cout << parcels << endl;
  }

  return 0;
}